home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / dbiiicol.arc / DBIIICOL.PRG
Encoding:
Text File  |  1985-10-19  |  10.5 KB  |  357 lines

  1. *                COLOR.PRG AND PERSONALIZATION PROGRAM
  2. *    WRITTEN BY: GLENN E. MERIDETH  201-262-9559
  3. *    EXTRACTED FROM UTILITY.PRG
  4. *       MAIN PROGRAM WILL NEED TO MAKE ALLOWANCES FOR A NEW SYSTEM THAT
  5. *    DOES NOT HAVE ANY COLOR INFORMATION , SUCH AS THE FOLLOWING:
  6.  
  7. PUBLIC PSSF,PSSB,PSEF,PSEB,PSBD
  8.  
  9. *    THE BELOW LINES READ IN OLD COLOR AND PERSONAL INFORMATION OR SET UP
  10. * DEFAULT VALUES. THIS WOULD NORMALLY BE IN  THE MAIN DBIII PROGRAM WITH
  11. * AN OPTION TO CALL A UTILITY MENU WHERE THE COLOR/PERSONAL PROGRAMS ARE
  12. *******************      MAIN  MENU    INTRO **********************
  13.  
  14.   IF FILE("CSGPERS.MEM")
  15.      RESTORE FROM CSGPERS ADDITIVE
  16.   ELSE
  17.  
  18. *    SET UP DEFAULT COLOURS
  19.  
  20.      PSSF = "+6"
  21.         * STANDARD FORGROUND COLOR
  22.      PSSB = "1"
  23.         * STANDARD BACKGROUND COLOR
  24.      PSEF = "+2" 
  25.         * ENHANCED FORGROUND COLOR
  26.      PSEB = "0"
  27.         * ENHANCED BACKGROUND COLOR
  28.      PSBD = "1"
  29.         * BORDER COLOR
  30.  
  31. *    SET UP DEFAULT VALUES FOR PERSONALIZATION
  32.  
  33.      STORE "Y" TO PSAUTO,PSBELL,PSVIDEO
  34.     ENDIF
  35.  
  36. *    SET UP CONFIRM, BELL, INVERSE ACCORDING TO DEFAULT OR *.MEM FILE
  37.  
  38.         IF PSAUTO = "Y"
  39.           SET CONFIRM OFF
  40.           ELSE
  41.           SET CONFIRM ON
  42.         ENDIF
  43.         IF PSBELL = "Y"
  44.           SET BELL ON
  45.           ELSE
  46.           SET BELL OFF
  47.         ENDIF
  48.         IF PSVIDEO = "N"
  49.           SET DELIMITERS ON
  50.           SET DELIMITERS TO "[]"
  51.           SET INTENSITY OFF
  52.         ELSE
  53.           SET DELIMITERS OFF
  54.           SET INTENSITY ON
  55.      ENDIF
  56.  
  57. SET COLOR TO &PSSF/&PSSB,&PSEF/&PSEB,&PSBD
  58.  
  59. *    COLOUR UTILITY WHICH IS CALLED FROM MAIN MENU
  60.  
  61. *    PSSF = STANDARD FORGROUND
  62. *    PSSB = STANDARD BACKGROUN
  63. *    PSEF = ENHANCED FORGROUND
  64. *    PSEB = EHNANCED BACKGROUN
  65. *    PSBD = BORDER
  66.  
  67. CASE UPPER(U_choice) = "C"
  68.   clear
  69.  
  70. *    ASSIGN FIXED VALUES FOR THIS PROGRAM SO ONE CANNOT SET THE COLOURS
  71. *    SO ONE CANNOT READ THE SCREEN 
  72.  
  73.   PSSF = "+6"
  74. *    +6 = high intensity yellow
  75.   PSSB = "1"
  76. *    1 = blue background
  77.   PSEF = "+2"
  78. *    +2 = high intensity green
  79.   PSEB = "0"
  80. *    0 = black background
  81.   PSBD = "1"
  82. *    1 = blue border
  83.  
  84.   SET COLOR TO &PSSF/&PSSB,&PSEF/&PSEB,&PSBD
  85.   again = "Y"
  86.      do while upper(again)="Y"
  87.         CLEAR
  88.  
  89. *    PRESENT THE AVAILABLE COLOURS SO USER CAN SEE INSTEAD OF GUESSING 
  90. *    WHAT A COLOUR IS
  91.  
  92.         set color to +1/0
  93.         @ 17,5 say " +1 HIGH  "
  94.         SET COLOR TO 1/0
  95.         @ 18,5 SAY " 1 NORMAL "
  96.         SET COLOR TO +2/0
  97.         @ 19,5 SAY " +2 HIGH  "
  98.         SET COLOR TO 2/0
  99.         @ 20,5 SAY " 2 NORMAL "
  100.         SET COLOR TO +3/0
  101.         @ 17,20 SAY " +3 HIGH  "
  102.         SET COLOR TO 3/0
  103.         @ 18,20 SAY " 3 NORMAL "
  104.         SET COLOR TO +4/0
  105.         @ 19,20 SAY " +4 HIGH  "
  106.         SET COLOR TO 4/0
  107.         @ 20,20 SAY " 4 NORMAL "
  108.         SET COLOR TO +5/0
  109.         @ 17,35 SAY " +5 HIGH  "
  110.         SET COLOR TO 5/0
  111.         @ 18,35 SAY " 5 NORMAL "
  112.         SET COLOR TO +6/0
  113.         @ 19,35 SAY " +6 HIGH  "
  114.         SET COLOR TO 6/0
  115.         @ 20,35 SAY " 6 NORMAL "
  116.         SET COLOR TO +7/0
  117.         @ 17,50 SAY " +7 HIGH  "
  118.         SET COLOR TO 7/0
  119.         @ 18,50 SAY " 7 NORMAL "
  120.         SET COLOR TO 0/1
  121.         @ 19,50 SAY " 0 NORMAL "
  122.         SET COLOR TO *0/1
  123.         @ 20,50 SAY " *0 BLINK"
  124.         SET COLOR TO +6/1,+2/0,&PSBD
  125.         SET COLOR TO &PSSF/&PSSB
  126.  
  127. *    LET USER KNOW WHAT THE PRESENT CHOICES ARE SO IF THEY WANT TO MAKE
  128. *    A CHANGE THEY DON'T NEED TO REMEMBER WHAT THE LAST COLOUR WAS
  129.  
  130.         @ 22,5 SAY "FORGROUND"
  131.         @ 22,16 SAY PSSF
  132.         @ 22,20 SAY "BACKGROUND"
  133.         @ 22,33 SAY PSSB
  134.         @ 23,5 SAY " PRIOR SELECTION NORMAL TEXT "
  135.         SET COLOR TO &PSEF/&PSEB
  136.         @ 22,45 SAY "FORGROUND"
  137.         @ 22,56 SAY PSEF
  138.         @ 22,60 SAY "BACKGROUND"
  139.         @ 22,73 SAY PSEB
  140.         @ 23,45 SAY " PRIOR SELECTION DATA ENTRY  "
  141.         SET COLOR TO +6/1
  142.         @ 24,33 SAY " BORDER = "
  143.         @ 24,44 SAY PSBD
  144.  
  145. *    PROVIDE THE USER WITH INSTRUCTIONS
  146.  
  147.         @ 0,5 SAY "You can SELECT CERTAIN COLOURS from thes program. Some colours CANNOT"
  148.         @ 1,5 SAY "be changed, i.e. the warning messages. You will be able to change until"
  149.         @ 2,5 SAY "you enter < Q >. The allowable colours and modes are : "
  150.         @ 3,5 say "BLACK = 0   BLUE = 1     GREEN = 2     CYAN = 3   RED = 4  MAGENTA = 5"
  151.         @ 4,5 SAY "BROWN = 6   WHITE = 7    HIGH INTENSITY = +       BLINKING = *"
  152.         @ 5,5 SAY "HIGH INTENSITY and/or BLINKING do not work on the background colours. You"
  153.         @ 6,5 say "cannot BLINK the border. Enter a number and press <RETURN>, -or- <SPACE>"     
  154.         @ 7,5 SAY "<RETURN> to keep current choice. Present choices are at the bottom of the"
  155.         @ 8,5 SAY "Screen. On a monochrome monitor only, < U > = underline. Happy colouring."
  156.         ?
  157.  
  158. *    TRANSFER LAST CHOICE INTO A TEMPORATY VARIABLE
  159.  
  160.         TEMP = PSSF
  161.  
  162. *    CLEAR VARIABLE
  163.  
  164.         PSSF = ''
  165.  
  166. *    INSURE USER ONLY ENTERS VALID VALUES, I.E. <+> OR <*> ONLY WITH THE
  167. *    FIRST NUMBER AND LIMIT THE NUMBERS TO 0-7 AND <U>, OR ' '
  168.  
  169.         DO WHILE .NOT. SUBSTR(PSSF,1,1) $ ' +*01234567U'(.OR. .NOT. SUBSTR(PSSF,2,1) $ '01234567U')
  170.           @ 9,0 SAY ''
  171.           accept "   enter FORGROUND (this is forground) colour  " to PSSF
  172.  
  173. *    IF NOT <+> OR <*> THEN CHECK FOR VALID ENTRY
  174.  
  175.              IF LEN(PSSF)=1 .AND. .NOT. (SUBSTR(PSSF,1,1) $ ' 01234567U')
  176.                PSSF = ''
  177.              ENDIF
  178.         ENDDO
  179.  
  180. *    DOES USER WANT TO CONTINUE WITH PRIOR ENTRY 
  181.  
  182.         IF PSSF = " "
  183.            PSSF=TEMP
  184.         ENDIF
  185.      SET COLOR TO &PSSF/&PSSB,,&PSBD
  186.  
  187. *    LET USER KNOW WHAT THEY HAVE CHOOSEN
  188.  
  189.      @ 10,55 say " FORGROUND "
  190.      SET COLOR TO +6/1,+2/0,&PSBD
  191.  
  192. *       AND REPEAT....
  193.  
  194.      TEMP = PSSB
  195.      PSSB = ''
  196.         DO WHILE .NOT. PSSB $ ' 01234567'
  197.            @ 10,0 SAY ''
  198.            ACCEPT "   enter BACKGROUND (the overall screen colour) " to PSSB
  199.               IF LEN(PSSF)=1 .AND. .NOT. (SUBSTR(PSSF,1,1) $ ' 01234567U')
  200.                  PSSB = ''
  201.               ENDIF
  202.         ENDDO
  203.               IF PSSB =' '
  204.                  PSSB=TEMP
  205.               ENDIF
  206.      SET COLOR TO &PSSF/&PSSB,,&PSBD
  207.      @ 11,55 SAY " BACKGROUND "
  208.      SET COLOR TO +6/1,+2/0,&PSBD
  209.      TEMP = PSEF
  210.      PSEF = ''
  211.         DO WHILE .NOT. SUBSTR(PSEF,1,1) $ ' +*01234567U'(.OR. .NOT. SUBSTR(PSEF,2,1) $ '01234567U')
  212.            @ 11,0 SAY ''
  213.            ACCEPT "   enter DATA ENTRY FORGROUND (the box words)    " to PSEF
  214.               IF LEN(PSEF)=1 .AND. .NOT. (SUBSTR(PSEF,1,1) $ ' 01234567U')
  215.                  PSEF = ''
  216.               ENDIF
  217.         ENDDO
  218.         IF PSEF = ' '
  219.            PSEF=TEMP
  220.         ENDIF
  221.      SET COLOR TO &PSEF/&PSEB,,&PSBD
  222.      @ 12,55 SAY " DATA ENTRY FORGROUND "
  223.      SET COLOR TO +6/1,+2/0,&PSBD
  224.      TEMP = PSEB
  225.      PSEB = ''
  226.         DO WHILE .NOT. PSEB $ ' 01234567'
  227.            @ 12,0 SAY ''
  228.            ACCEPT "   enter DATA ENTRY BACKGROUND (the box outline) " to PSEB
  229.               IF LEN(PSSF)=1 .AND. .NOT. (SUBSTR(PSSF,1,1) $ ' 01234567U')
  230.                  PSEB = ''
  231.               ENDIF
  232.         ENDDO
  233.         IF PSEB = ' '
  234.            PSEB = TEMP
  235.         ENDIF
  236.      SET COLOR TO &PSEF/&PSEB,,&PSBD
  237.      @ 13,55 SAY " DATA ENTRY BACKGROUND "
  238.      SET COLOR TO +6/1,+2/0,&PSBD
  239.      TEMP = PSBD
  240.      PSBD = ''
  241.         DO WHILE .NOT. PSBD $ ' 01234567'
  242.            @ 13,0 SAY ''
  243.            ACCEPT "   enter BORDER colour (the colour on the edges) " to PSBD
  244.               IF LEN(PSSF)=1 .AND. .NOT. (SUBSTR(PSSF,1,1) $ ' 01234567U')
  245.                  PSBD = ''
  246.               ENDIF
  247.         ENDDO
  248.         IF PSBD = ' '
  249.            PSBD = TEMP
  250.         ENDIF
  251.      SET COLOR TO +6/1,+2/0,&PSBD
  252.  
  253. *    CHECK TO SEE IF USER HAS SET SET BOTH COLOURS THE SAME AND FORCE
  254. *    THEM TO GO BACK
  255.  
  256.         IF PSSF=PSSB .OR. PSEF=PSEB
  257.            SET COLOR TO +4/0
  258.            @ 15,20 SAY "YOU CANNOT HAVE BOTH SELECTIONS THE SAME"
  259.            WAIT
  260.            SET COLOR TO +6/1,+2/0,&PSBD
  261.         ELSE
  262.            wait "                      any more changes  Y/N  " to again  
  263.         ENDIF
  264.   ENDDO
  265.  
  266. *    SAVE VALUES TO *.MEM
  267.  
  268. SET SAFETY OFF
  269. SAVE ALL LIKE  PS* TO CSGPERS
  270. SET SAFETY ON
  271.  
  272. *    PERSONALIZATION MENU, CALLED FROM MAIN MENU VIA UTILITY MENU
  273.  
  274. CASE UPPER(U_choice) = "P"
  275.   CLEAR
  276.  
  277. *    RESTORE VALUES IF THEY EXIST
  278.  
  279.      IF FILE("CSGPERS.MEM")
  280.         RESTORE FROM CSGPERS
  281.      ELSE
  282.         STORE "N" TO PSVIDEO,PSBELL,PSAUTO
  283.      ENDIF
  284.   @ 0,2 SAY "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  285.   @ 0,57 SAY "++++++++++++++++++++++"
  286.   @ 1,2 SAY "+"
  287.   @ 1,78 SAY "+"
  288.   @ 2,2 SAY "+                   P E R S O N A L I Z A T I O N    M"
  289.   @ 2,57 SAY "E N U                +"
  290.   @ 3,2 SAY "+"
  291.   @ 3,78 SAY "+"
  292.   @ 4,2 SAY "+++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  293.   @ 4,57 SAY "++++++++++++++++++++++"
  294.   @ 6,22 SAY "ALL RESPONES REQUIRE  ( Y/N )  ANSWER"
  295.  
  296.   STORE ' ' TO CHANGE
  297.      DO WHILE .NOT. (UPPER(CHANGE) $'N')
  298.            @ 10,0 clear
  299.            STORE " " TO PERS
  300.  
  301. *    USER WANT BELL AT END OF DATA ENTRY FIELD ?
  302.  
  303.               DO WHILE .NOT. (UPPER(PERS) $ 'YN')
  304.                  ?   "                  OLD VALUE IS : " + PSBELL
  305.                  WAIT"                  SET BELL AT END OF FIELD " TO PERS
  306.               ENDDO
  307.            STORE PERS TO PSBELL
  308.            STORE ' ' TO PERS
  309.  
  310. *    USER WANT AUTO-RETURN AT END OF DTA ENTRY FIELD ?
  311.  
  312.            DO WHILE .NOT. (UPPER(PERS) $ 'YN')
  313.                  ? "                    OLD VALUE IS : " + PSAUTO
  314.                  WAIT"            SET AUTO RETURN AT END OF FIELD " to pers
  315.            ENDDO
  316.         STORE PERS TO PSAUTO
  317.         STORE ' ' TO PERS
  318.  
  319. *    HOW DOES USER WANT TO SEE DATA ENTRY ?
  320.  
  321.         ? "        (N = [ ] used to outline field)"
  322.            DO WHILE .NOT. (UPPER(PERS) $ 'YN')
  323.               ? "                    OLD VALUE IS : " + PSVIDEO
  324.               wait"               SET FIELDS TO REVERSE VIDEO " to pers
  325.            ENDDO
  326.          STORE PERS TO PSVIDEO
  327.            WAIT "                             MAKE ANY CHANGES " TO CHANGE
  328.   ENDDO
  329.  
  330. *    SET UP SYSTEM PER USER CHOICES
  331.  
  332.   IF PSAUTO = "Y"
  333.      SET CONFIRM ON
  334.   ELSE
  335.      SET CONFIRM OFF
  336.   ENDIF
  337.   IF PSBELL = "Y"
  338.      SET BELL ON
  339.   ELSE
  340.      SET BELL OFF
  341.   ENDIF
  342.      IF PSVIDEO = "N"
  343.      SET DELIMITERS ON
  344.      SET DELIMITERS TO "[]"
  345.      SET INTENSITY OFF
  346.   ELSE
  347.      SET DELIMITERS OFF
  348.      SET INTENSITY ON
  349.   ENDIF
  350.  
  351. *    SAVE OUT TO *.MEM
  352.  
  353. SET SAFETY OFF
  354. SAVE ALL LIKE  PS* TO CSGPERS
  355. SET SAFETY ON
  356.  
  357. *END